package com.sright.bcard.content.dal.dao;

import com.sright.bcard.common.service.share.base.dao.BaseDAO;
import com.sright.bcard.common.service.share.dto.page.BetweenDateParamRequest;
import com.sright.bcard.common.service.share.dto.page.PageParamRequest;
import com.sright.bcard.content.dal.entity.MaterialDO;

import java.util.List;

public interface MaterialDAO extends BaseDAO<MaterialDO> {
    List<MaterialDO> selectByExample(MaterialDO materialDO);

    Integer deleteById(Long id);

    Integer count(List<Integer> materialType, BetweenDateParamRequest betweenDateParamRequest, Integer needReview);

    List<MaterialDO> pageList(List<Integer> materialType, BetweenDateParamRequest betweenDateParamRequest, PageParamRequest request, Integer needReview);


    List<MaterialDO> selectByMaterialIdList(List<Long> materialIdList);

    List<MaterialDO> selectByEnterpriseId(Long enterpriseId);

    List<MaterialDO> selectByMaterialIdAndType(List<Long> materialIdList, List<Integer> typeList);

    Integer selectCountByUserIdAndType(Long userId, Integer type);

    List<MaterialDO> selectByUserIdAndType(Long userId,Integer type);

    List<MaterialDO> page(MaterialDO materialDO);

    Integer pageCount(MaterialDO materialDO);

    List<MaterialDO> selectByEnterpriseIdAndType(MaterialDO materialDO);

    Integer countShareMaterial(BetweenDateParamRequest betweenDateParamRequest, Integer needReview);

    List<MaterialDO> shareMaterialList(BetweenDateParamRequest betweenDateParamRequest, PageParamRequest request, Integer needReview);
}
